CREATE TABLE [dbo].[tb_EstudiosParciales]
(
[idEstudioParcial] [int] NOT NULL IDENTITY(1, 1),
[Agente] [int] NOT NULL,
[Titulo] [int] NOT NULL,
[Entidad] [int] NOT NULL,
[MateriasPlan] [int] NOT NULL,
[CantidadMateriasAprobadas] [int] NOT NULL,
[TotalMatPedagogicasPlan] [int] NULL,
[CantidadMatPedagogicasAprobadas] [int] NULL,
[FechaDeCarga9] [datetime] NOT NULL CONSTRAINT [DF_tb_EstudiosParciales_FechaDeCarga9] DEFAULT (getdate()),
[GrupoIncumbencias] [int] NOT NULL,
[FechaPresentacion] [datetime] NULL
) ON [PRIMARY]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [dbo].[AsignarFechaDefaultEstudiosParciales] ON [dbo].[tb_EstudiosParciales] 
FOR INSERT, UPDATE
AS
BEGIN
--AsignarFechaDefault
SET NOCOUNT ON

DECLARE @FechaPresentacion as datetime
DECLARE @id as int


SELECT @FechaPresentacion = FechaPresentacion,@id=idEstudioParcial  FROM INSERTED

	IF (@@ROWCOUNT=1) 
	 BEGIN
	    IF @FechaPresentacion IS NULL SELECT @FechaPresentacion= dbo.FECHA_PRESENTACION_DEFAULT ()
	    UPDATE tb_EstudiosParciales SET FechaPresentacion = @FechaPresentacion WHERE idEstudioParcial=@id
	 END

END


GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [dbo].[tri_EstudiosParcialesAudit] 
on [dbo].[tb_EstudiosParciales] for insert,update,delete as
DECLARE @OPERACION varchar(50)

IF EXISTS (SELECT * FROM INSERTED)
BEGIN
    IF EXISTS (SELECT * FROM DELETED)
    BEGIN
        --UPDATE
        SET @OPERACION='UPDATE'
    END
    ELSE
    BEGIN
        --INSERT
        SET @OPERACION='INSERT'
    END

    --handle insert or update data
    insert into tb_estudiosparcialesaudit(idestudioparcial,agente,titulo,entidad,materiasplan,cantidadmateriasaprobadas,
                                           totalmatpedagogicasplan,cantidadmatpedagogicasaprobadas,fechadecarga9,
                                           grupoincumbencias,fechapresentacion,operacion,fechaoperacion)
				        	       SELECT  idestudioparcial,agente,titulo,entidad,materiasplan,cantidadmateriasaprobadas,
                                           totalmatpedagogicasplan,cantidadmatpedagogicasaprobadas,fechadecarga9,
                                           grupoincumbencias,fechapresentacion,@OPERACION,getdate() FROM inserted 

END
ELSE IF EXISTS(SELECT * FROM DELETED)
BEGIN
    --DELETE
    SET @OPERACION='DELETE'
      insert into tb_estudiosparcialesaudit(idestudioparcial,agente,titulo,entidad,materiasplan,cantidadmateriasaprobadas,
                                           totalmatpedagogicasplan,cantidadmatpedagogicasaprobadas,fechadecarga9,
                                           grupoincumbencias,fechapresentacion,operacion,fechaoperacion)
				        	       SELECT  idestudioparcial,agente,titulo,entidad,materiasplan,cantidadmateriasaprobadas,
                                           totalmatpedagogicasplan,cantidadmatpedagogicasaprobadas,fechadecarga9,
                                           grupoincumbencias,fechapresentacion,@OPERACION,getdate() FROM deleted
    
    

END
GO
ALTER TABLE [dbo].[tb_EstudiosParciales] ADD CONSTRAINT [PK_tb_EstudiosParciales] PRIMARY KEY NONCLUSTERED  ([idEstudioParcial]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[tb_EstudiosParciales] WITH NOCHECK ADD CONSTRAINT [FK_tb_EstudiosParciales_tb_Agentes] FOREIGN KEY ([Agente]) REFERENCES [dbo].[tb_Agentes] ([idAgente])
GO
ALTER TABLE [dbo].[tb_EstudiosParciales] WITH NOCHECK ADD CONSTRAINT [FK_tb_EstudiosParciales_tb_Agentes1] FOREIGN KEY ([Agente]) REFERENCES [dbo].[tb_Agentes] ([idAgente])
GO
ALTER TABLE [dbo].[tb_EstudiosParciales] WITH NOCHECK ADD CONSTRAINT [FK_tb_EstudiosParciales_tb_EntidadOtorganteDeTitulos] FOREIGN KEY ([Entidad]) REFERENCES [dbo].[tb_EntidadOtorganteDeTitulos] ([idEntidad])
GO
ALTER TABLE [dbo].[tb_EstudiosParciales] ADD CONSTRAINT [FK_tb_EstudiosParciales_tb_GruposDeIncumbencias] FOREIGN KEY ([GrupoIncumbencias]) REFERENCES [dbo].[tb_GruposDeIncumbencias] ([idGrupoIncumbencia])
GO
ALTER TABLE [dbo].[tb_EstudiosParciales] WITH NOCHECK ADD CONSTRAINT [FK_tb_EstudiosParciales_tb_Titulos1] FOREIGN KEY ([Titulo]) REFERENCES [dbo].[tb_Titulos] ([idTitulo])
GO
